//
//				xagg_base.h
//

#ifndef __XAGG_BASE_H
#define __XAGG_BASE_H

#ifdef WIN32
#include <tchar.h>
#endif

#include <agg_basics.h>
#include <agg_rendering_buffer.h>
#include <agg_rasterizer_scanline_aa.h>
#include <agg_scanline_u.h>
#include <agg_renderer_scanline.h>
#include <agg_pixfmt_rgba.h>
#include <agg_pixfmt_gray.h>
#include <agg_path_storage.h>
#include <agg_trans_affine.h>

namespace xagg
{
	typedef agg::pixfmt_bgra32 pixfmt;
	typedef agg::renderer_base<pixfmt> ren_base;
	typedef agg::pixfmt_gray8 pixfmt_mono;
	typedef agg::renderer_base<pixfmt_mono> ren_base_mono;

#ifdef UNICODE
	typedef wchar_t CharType;
#else
	typedef char CharType;
#endif
	typedef std::basic_string<CharType> String;

	template <typename VertexSource, typename ColorT>
	void renderDefaults(const ren_base& rb, const VertexSource& vs, ColorT c)
	{
		agg::rasterizer_scanline_aa<> Ras;
		agg::scanline_p8 sl;
		Ras.add_path(vs);
		agg::render_scanlines_aa_solid(Ras, sl, rb, c);
	}
}

#endif
